home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctjoc85.arc / ETIME.F77 < prev    next >
Text File  |  1985-03-16  |  2KB  |  65 lines

  1.       subroutine etime (e,     s,     display)
  2.       integer*2         e (4), s (4)
  3.       integer*2                       display
  4.  
  5.       integer*2   i, now (4)
  6.       real*4      time bar, average
  7.       character   punct (4)
  8.  
  9.       data        punct  / ' ', ':', ':', '.'/
  10.  
  11.       call time (now)
  12.       call subtime (e, s, now)
  13.       if (display .ge. 0) then
  14.          write (*, 98) (punct (i), e (i), i = 1, 4)
  15.          if (display .gt. 0) then
  16.             average = time bar (e, display)
  17.             write (*, 99) display, average
  18.             end if
  19.          end if
  20.       return
  21.  
  22. 98    format (' elspsed time', 4(a1, i2))
  23. 99    format (' average time for ', i3, ' iterations',
  24.      1        f9.3, ' seconds')
  25.       end
  26.       subroutine subtime (delta, start, stop)
  27.       integer*2   delta (4), start (4), stop (4)
  28.  
  29.       integer*2   i, borrow
  30.       integer*2   adjust (4)
  31.  
  32.       data        adjust / 24, 60, 60, 100/
  33.  
  34.       borrow = 0
  35.       do 1 i = 4, 1, -1
  36.          delta (i) = stop (i) - start (i) - borrow
  37.          if (delta (i) .lt. 0) then
  38.             delta (i) = delta (i) + adjust (i)
  39.             borrow = 1
  40.          else
  41.             borrow = 0
  42.             end if
  43. 1     continue
  44.       return
  45.       end
  46.       real*4         function time bar (time, n)
  47.       integer*2      time (4)
  48.       integer*2      n
  49.  
  50.       integer*4      hseconds
  51.       integer*4      convert (4)
  52.       integer*2      i
  53.  
  54.       data           convert / 60, 60, 100, 1/
  55.  
  56.       hseconds = 0
  57.       do 1 i = 1, 4
  58.          hseconds 
  59.      1    = convert (i)*(hseconds + time (i))
  60. 1        continue
  61.  
  62.       time bar = float (hseconds) / float (n) / 100.0
  63.       return
  64.       end
  65.